package com.ssy.lingxi.settle.accounts.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.settle.accounts.model.vo.request.DeletePlatformInvoiceVO;
import com.ssy.lingxi.settle.accounts.model.vo.request.PlatformInvoiceAddVO;
import com.ssy.lingxi.settle.accounts.model.vo.request.PlatformInvoiceUpdateVO;
import com.ssy.lingxi.settle.accounts.model.vo.response.PlatformInvoiceDetailVO;
import com.ssy.lingxi.settle.accounts.model.vo.response.PlatformInvoiceVO;

import java.util.List;

/**
 * 平台发票信息接口
 * @author 伍将
 * @date 2020/10/20
 * @version 2.0.0
 */
public interface IPlatformInvoiceService {

    /**
     * 获取平台发票列表
     * @author 伍将
     * @date 2020/10/20
     * @return com.ssy.lingxi.common.response.Wrapper<java.util.List < com.ssy.lingxi.settle.accounts.mode.vo.response.PlatformInvoiceVO>>
     **/
    Wrapper<List<PlatformInvoiceVO>> getList();

    /**
     * 新增平台发票
     * @author 伍将
     * @date 2020/10/20
     * @param sysUser: 当前登录用户
     * @param addVO: 新增参数
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Long> add(UserLoginCacheDTO sysUser, PlatformInvoiceAddVO addVO);

    /**
     * 更新平台发票
     * @author 伍将
     * @date 2020/10/20
     * @param sysUser:当前登录用户
     * @param updateVO: 更新参数
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> update(UserLoginCacheDTO sysUser, PlatformInvoiceUpdateVO updateVO);

    /**
     * 删除平台发票
     * @author 伍将
     * @date 2020/10/20
     * @param deleteVo:删除参数
     * @param sysUser: 当前登录用户
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> delete(UserLoginCacheDTO sysUser, DeletePlatformInvoiceVO deleteVo);

    /**
     * 获取平台发票详情
     * @author 伍将
     * @date 2020/10/20
     * @param id: 发票id
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.settle.accounts.mode.vo.response.PlatformInvoiceDetailVO>
     **/
    Wrapper<PlatformInvoiceDetailVO> getDetail(Long id);

    /**
     * 获取默认发票
     * @author 伍将
     * @date 2021/1/21
     * @return 平台默认发票
     **/
    Wrapper<PlatformInvoiceDetailVO> getDefaultDetail();
}
